package nueva.esperanza.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

public class EmailValidator implements Validator {
	private static final String EMAIL_REGEX = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[_A-Za-z0-9-]+)";
	
	public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
		Pattern mask = null;
		
		mask = Pattern.compile(EMAIL_REGEX);
		Matcher matcher = mask.matcher(value.toString());
		if(!matcher.matches()) {
			FacesMessage message = new FacesMessage();
			message.setDetail("Correo no es valido");
			message.setSummary("Correo no es valido");
			message.setSeverity(FacesMessage.SEVERITY_ERROR);
			throw new ValidatorException(message);
		}
	}
}
